In an enterprise environment it is often essential to backup important software and data. One frequently used backup technique is data mirroring, in which data stored at a primary site is mirrored to a secondary site. The mirrored data can be used instead of the primary data in the event of a failure of the primary site or loss or corruption of the primary data.
In some situations it may be necessary to reconstruct an entire primary site, including all of its applications and data, at another site, called a “failover site”, such as when the entire primary site or a substantial part of it fails. This process is called “failover” or “failing over”. Sometimes failover is done as a planned activity, such as when it is necessary to upgrade hardware or software or perform routine maintenance on the primary site.
For some applications and use cases, failover can be very complicated and time consuming, requiring the administrator who oversees the process to have significant depth of technical knowledge about the system. Consider for example, a scenario in which an application server runs on two or more clustered server nodes at a primary site. Data used by the application server may be backed up to a separate storage server at the primary site via a network, such as a local area network (LAN). If a major part of this system fails, reconstructing the system and all of its data to its pre-failure state at a failover site can be extremely time consuming, taking hours to accomplish, due to the complexity of the system and the amount of data to be recovered. There is also significant likelihood of human error occurring during the failover process. These factors can result in significant downtime of the application and its data, which could have serious adverse business consequences.